program CheckRepository;

{%File 'DB Units\kbmTable\kbmMemTable.inc'}
{%File 'DB Units\kbmTable\kbmMemRes.inc'}

uses
  Forms,
  frm_MainForm in 'Forms\frm_MainForm.pas' {frmMain},
  unit_SettingsConsts in 'Units_Settings\unit_SettingsConsts.pas',
  unit_AppSettings in 'Units_Settings\unit_AppSettings.pas',
  MD5 in 'units_hashes\MD5.pas',
  frm_Settings in 'Forms\frm_Settings.pas' {frmSettings},
  unit_fmLogFile in 'units_LogFile\unit_fmLogFile.pas',
  unit_GenesisLocalRepository in 'units_GenesisRepository\unit_GenesisLocalRepository.pas',
  unit_MD5Misc in 'units_hashes\unit_MD5Misc.pas',
  data_MainDataModule in 'DB Units\data_MainDataModule.pas' {dmMainDB: TDataModule},
  unit_CSVFile in 'DB Units\unit_CSVFile.pas',
  kbmMemTable in 'DB Units\kbmTable\kbmMemTable.pas',
  kbmCompress in 'DB Units\kbmTable\kbmCompress.pas',
  kbmMemResRus in 'DB Units\kbmTable\kbmMemResRus.pas',
  kbmMemResEng in 'DB Units\kbmTable\kbmMemResEng.pas',
  lzh in 'units_Archive\3rdParty\lzh.pas',
  unit_DBStructure in 'DB Units\unit_DBStructure.pas',
  unit_GenesisDBConsts in 'DB Units\unit_GenesisDBConsts.pas',
  unit_SettingFrm_consts in 'Forms\unit_SettingFrm_consts.pas',
  unit_Templates in 'units_LogFile\unit_Templates.pas',
  kbmMemBinaryStreamFormat in 'DB Units\kbmTable\kbmMemBinaryStreamFormat.pas',
  kbmMemCSVStreamFormat in 'DB Units\kbmTable\kbmMemCSVStreamFormat.pas',
  frm_SplashScreen in 'Forms\frm_SplashScreen.pas' {frmSplash},
  Res_interface_eng in 'units_Locale\Res_interface_eng.pas',
  cyCopyFiles in 'units_FS\cyCopyFiles.pas',
  cySearchFiles in 'units_FS\cySearchFiles.pas',
  FileSearch in 'units_FS\FileSearch.pas';

{$R *.res}

begin
  Application.Initialize;
  //
  // Load application settings
  //
  CreateAppSettings;
  Settings.LoadSettings;
  //
  // initialize splash screen
  //
  frmSplash := TfrmSplash.Create(Application);
  try
    frmSplash.lblProgramVersion.Caption := '0.10 alpha';
    frmSplash.lblState.Caption := rstrInitializationMessage;
    frmSplash.Show;   // Display the splash screen
    frmSplash.Update; // Update the splash screen to ensure it gets drawn
    //
    Application.CreateForm(TdmMainDB, dmMainDB);
    Application.CreateForm(TfrmMain, frmMain);
    Application.CreateForm(TfrmSettings, frmSettings);
    Application.CreateForm(TfrmSplash, frmSplash);
  //
    frmSplash.Hide;  // Hide the splash screen
  finally
    frmSplash.Free;  // Free the splash screen
  end;

  Application.Run;
end.
